\chapter{Conclusions}
\label{chap:conclusion}
A web-based environment for learning normalization of relational database schemata has been developed to
enhance teaching and learning of relational-database normalization. Our implementation of the 
environment as described in Chapter~\ref{chap:impl} is called LDBN (Learn DataBase Normalization). 
This report presented the architecture and underlying philosophy as well as the user interface of LDBN. 
In addition to this, in Chapter~\ref{chap:preliminaries}
we summarized some key aspects of relational-database normalization. 
In this chapter we take a look at the fulfillment of the design goals and discuss the limitations of 
the current implementation.

The main design goal of the project was to develop a system which is capable of evaluating any 
solution/decomposition
proposed by students, and not just giving a sample one, which, on the other hand, is also possible
in LDBN. Achieving the main goal was not an easy task, as many of the problems involved
in the evaluation process of a solution are NP-complete or co-NP-complete. 
If we would have implemented the system using only standard/trivial algorithms, LDBN
would have become a slow and barely usable learning environment. Therefore,
a lot of effort and time was invested in increasing the overall system performance. Here follows a list
of all the performance enhancements in LDBN:
\begin{enumerate}
  \item Implementation of advanced and fast algorithms such as 
    \textit{ReductionByResolution}, $SLFD$-$Closure$ and \textit{Equivalence}, which were presented in Section~\ref{sec:alg}.
  \item Use of efficient data structures as the ones described in Section~\ref{sec:corepk}.
  \item Cashing some algorithms' output for further use. This was mentioned in Section~\ref{sec:keyfunctions}. 
  \item Decentralizing the system architecture by moving most of the program logic to the client.
  \item Use of advanced tools for code optimizations such as the GWT's Java-to-JavaScript compiler.   
\end{enumerate}

Another major goal was the
development of a user friendly, fast and most importantly robust
user interface (UI). Indeed, the UI is one of the key features of LDBN and critical for its
success. Therefore, during the implementation process 
most of our efforts were concentrated on the development of the UI. We believe that it will be well received 
by both students and lecturers.
Furthermore, we hope that advanced features such as drag and drop will 
increase the usability of the environment.

It should be mentioned that LDBN is developed as an open source project 
under the Apache License, Version 2.0~\cite{walv2}. 
Source code and documentation are available at the project web-page~\cite{wldbnp}. 
The development of LDBN will continue, and we
hope that soon a community will be
built around the project, and that it will attract other developers as well. Possible directions for 
improving LDBN are presented in the following section. 

\section{Limitations and Future Work}
A logical next step for LDBN would be to support
other normal forms as the fourth normal form (4NF), which is the next level 
of normalization after BCNF.
However, this is not possible at the moment, as it would
require the implementation of new data structures and algorithms which have to 
support multivalued dependencies (MVDs). Support of 4NF was more of a desire than a requirement and
was therefore not implemented in the final version of LDBN. However, we hope this feature will be implemented
in future versions. 

Another possible direction for future development is a support of visualization of FDs such as the
one presented in Figure~\ref{fig:fds01a}, but there are many other different approaches for visualizing FDs as well.
Once again this was not a requirement for LDBN. 
%On the other hand, there are many other different approaches for visualizing FDs, 
%and we believe it would be better to realize some of those in a 
%separate web-based project, which can be accessed from LDBN, for example via Web Services.

Internationalization is also an important feature when it comes to educational software.
As we mentioned in Section~\ref{sec:gwt}, this can be realized easily using the built-in tools of GWT.
It will only require 
small changes in the UI, once the first translations into other languages are ready. However, a translation 
could be more difficult than it first appears. For instance, in the German language in the filed of relational-database
normalization
there is not a standard terminology. Therefore,
in same cases internationalization could also hurt the usability 
of LDBN, as it could cause confusion among students familiar with different terminologies.
This is one of the main reasons why LDBN does not yet support other languages.

Another area of possible research would be the evaluation of the learning environment 
in a real classroom by
studying whether LDBN has a positive impact on students' perceptions.
This could be achieved by comparing the students' performance on a pre-test to their
performance on a post-test, after using LDBN.  
